<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader Host: Smart Pointer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader Host
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Host Tools for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__smart__pointer.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a>  </div>
  <div class="headertitle">
<div class="title">Smart Pointer<div class="ingroups"><a class="el" href="group__blfwk.html">Host Bootloader Framework</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Smart pointer.  
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for Smart Pointer:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="group__smart__pointer.svg" width="344" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:classsmart__ptr"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr&lt; T &gt;</a></td></tr>
<tr class="memdesc:classsmart__ptr"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple, standard smart pointer class.  <a href="group__smart__pointer.html#classsmart__ptr">More...</a><br /></td></tr>
<tr class="separator:classsmart__ptr"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:classsmart__array__ptr"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr&lt; T &gt;</a></td></tr>
<tr class="memdesc:classsmart__array__ptr"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple, standard smart pointer class that uses the array delete operator.  <a href="group__smart__pointer.html#classsmart__array__ptr">More...</a><br /></td></tr>
<tr class="separator:classsmart__array__ptr"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Usage Information</h2>
<p>Smart pointer. </p>
<hr/><h2 class="groupheader">Class Documentation</h2>
<a name="classsmart__ptr" id="classsmart__ptr"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class smart_ptr</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><h3>template&lt;typename T&gt;<br />
class smart_ptr&lt; T &gt;</h3>

<p>Simple, standard smart pointer class. </p>
<p>This class only supports the single-owner paradigm. </p>
</div><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for smart_ptr&lt; T &gt;:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classsmart__ptr__coll__graph.svg" width="119" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Public Types</h3></td></tr>
<tr class="memitem:a3546102bab25faee48020a3c0e62e2e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3546102bab25faee48020a3c0e62e2e7"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>data_type</b></td></tr>
<tr class="separator:a3546102bab25faee48020a3c0e62e2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bcb8cfccfda71bd0484f8c5760510fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bcb8cfccfda71bd0484f8c5760510fa"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>ptr_type</b></td></tr>
<tr class="separator:a5bcb8cfccfda71bd0484f8c5760510fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09c2b3b230c473bc401d1e701ed85d83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09c2b3b230c473bc401d1e701ed85d83"></a>
typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_ptr_type</b></td></tr>
<tr class="separator:a09c2b3b230c473bc401d1e701ed85d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef4a38581bff2646a9668c3681fef77a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef4a38581bff2646a9668c3681fef77a"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ref_type</b></td></tr>
<tr class="separator:aef4a38581bff2646a9668c3681fef77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aef7cdadac93d4723abf39b3aa4f6c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9aef7cdadac93d4723abf39b3aa4f6c4"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_ref_type</b></td></tr>
<tr class="separator:a9aef7cdadac93d4723abf39b3aa4f6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3546102bab25faee48020a3c0e62e2e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3546102bab25faee48020a3c0e62e2e7"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>data_type</b></td></tr>
<tr class="separator:a3546102bab25faee48020a3c0e62e2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bcb8cfccfda71bd0484f8c5760510fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bcb8cfccfda71bd0484f8c5760510fa"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>ptr_type</b></td></tr>
<tr class="separator:a5bcb8cfccfda71bd0484f8c5760510fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09c2b3b230c473bc401d1e701ed85d83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09c2b3b230c473bc401d1e701ed85d83"></a>
typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_ptr_type</b></td></tr>
<tr class="separator:a09c2b3b230c473bc401d1e701ed85d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef4a38581bff2646a9668c3681fef77a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef4a38581bff2646a9668c3681fef77a"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ref_type</b></td></tr>
<tr class="separator:aef4a38581bff2646a9668c3681fef77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aef7cdadac93d4723abf39b3aa4f6c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9aef7cdadac93d4723abf39b3aa4f6c4"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_ref_type</b></td></tr>
<tr class="separator:a9aef7cdadac93d4723abf39b3aa4f6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:ae09faa6aeb5dd0f9587174c279410c4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae09faa6aeb5dd0f9587174c279410c4c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ae09faa6aeb5dd0f9587174c279410c4c">smart_ptr</a> ()</td></tr>
<tr class="memdesc:ae09faa6aeb5dd0f9587174c279410c4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constuctor. Initialises with no pointer set. <br /></td></tr>
<tr class="separator:ae09faa6aeb5dd0f9587174c279410c4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a507cff101712b9a04ee1e276319cd44f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a507cff101712b9a04ee1e276319cd44f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a507cff101712b9a04ee1e276319cd44f">smart_ptr</a> (ptr_type p)</td></tr>
<tr class="memdesc:a507cff101712b9a04ee1e276319cd44f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This constructor takes a pointer to the object to be deleted. <br /></td></tr>
<tr class="separator:a507cff101712b9a04ee1e276319cd44f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78322a0775a7cfaf852be79490661d77"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a78322a0775a7cfaf852be79490661d77">~smart_ptr</a> ()</td></tr>
<tr class="separator:a78322a0775a7cfaf852be79490661d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5847524c40eea27f1c6c9cd0e0c4485b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5847524c40eea27f1c6c9cd0e0c4485b"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a5847524c40eea27f1c6c9cd0e0c4485b">get</a> ()</td></tr>
<tr class="memdesc:a5847524c40eea27f1c6c9cd0e0c4485b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current pointer value. <br /></td></tr>
<tr class="separator:a5847524c40eea27f1c6c9cd0e0c4485b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab8c20e9c6dddd1701e99e018076df81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab8c20e9c6dddd1701e99e018076df81"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aab8c20e9c6dddd1701e99e018076df81">get</a> () const </td></tr>
<tr class="memdesc:aab8c20e9c6dddd1701e99e018076df81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the const form of the current pointer value. <br /></td></tr>
<tr class="separator:aab8c20e9c6dddd1701e99e018076df81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb352a009715192b0f63140ba532429"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a1fb352a009715192b0f63140ba532429">set</a> (ptr_type p)</td></tr>
<tr class="separator:a1fb352a009715192b0f63140ba532429"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1894b101bec04ea93eef04f3d723e7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1894b101bec04ea93eef04f3d723e7a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ad1894b101bec04ea93eef04f3d723e7a">reset</a> ()</td></tr>
<tr class="memdesc:ad1894b101bec04ea93eef04f3d723e7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates any previously set pointer value without deleting it. <br /></td></tr>
<tr class="separator:ad1894b101bec04ea93eef04f3d723e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d5b0d2ff54e9b09f3550b853ee320e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d5b0d2ff54e9b09f3550b853ee320e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a7d5b0d2ff54e9b09f3550b853ee320e0">clear</a> ()</td></tr>
<tr class="memdesc:a7d5b0d2ff54e9b09f3550b853ee320e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates a previously set pointer value, deleting it at the same time. <br /></td></tr>
<tr class="separator:a7d5b0d2ff54e9b09f3550b853ee320e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b9209d274166941176e0a6dd37a4c5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a45b9209d274166941176e0a6dd37a4c5">safe_delete</a> ()</td></tr>
<tr class="separator:a45b9209d274166941176e0a6dd37a4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae09faa6aeb5dd0f9587174c279410c4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae09faa6aeb5dd0f9587174c279410c4c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ae09faa6aeb5dd0f9587174c279410c4c">smart_ptr</a> ()</td></tr>
<tr class="memdesc:ae09faa6aeb5dd0f9587174c279410c4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constuctor. Initialises with no pointer set. <br /></td></tr>
<tr class="separator:ae09faa6aeb5dd0f9587174c279410c4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a507cff101712b9a04ee1e276319cd44f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a507cff101712b9a04ee1e276319cd44f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a507cff101712b9a04ee1e276319cd44f">smart_ptr</a> (ptr_type p)</td></tr>
<tr class="memdesc:a507cff101712b9a04ee1e276319cd44f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This constructor takes a pointer to the object to be deleted. <br /></td></tr>
<tr class="separator:a507cff101712b9a04ee1e276319cd44f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78322a0775a7cfaf852be79490661d77"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a78322a0775a7cfaf852be79490661d77">~smart_ptr</a> ()</td></tr>
<tr class="separator:a78322a0775a7cfaf852be79490661d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5847524c40eea27f1c6c9cd0e0c4485b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5847524c40eea27f1c6c9cd0e0c4485b"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a5847524c40eea27f1c6c9cd0e0c4485b">get</a> ()</td></tr>
<tr class="memdesc:a5847524c40eea27f1c6c9cd0e0c4485b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current pointer value. <br /></td></tr>
<tr class="separator:a5847524c40eea27f1c6c9cd0e0c4485b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab8c20e9c6dddd1701e99e018076df81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab8c20e9c6dddd1701e99e018076df81"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aab8c20e9c6dddd1701e99e018076df81">get</a> () const </td></tr>
<tr class="memdesc:aab8c20e9c6dddd1701e99e018076df81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the const form of the current pointer value. <br /></td></tr>
<tr class="separator:aab8c20e9c6dddd1701e99e018076df81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb352a009715192b0f63140ba532429"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a1fb352a009715192b0f63140ba532429">set</a> (ptr_type p)</td></tr>
<tr class="separator:a1fb352a009715192b0f63140ba532429"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1894b101bec04ea93eef04f3d723e7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1894b101bec04ea93eef04f3d723e7a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ad1894b101bec04ea93eef04f3d723e7a">reset</a> ()</td></tr>
<tr class="memdesc:ad1894b101bec04ea93eef04f3d723e7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates any previously set pointer value without deleting it. <br /></td></tr>
<tr class="separator:ad1894b101bec04ea93eef04f3d723e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d5b0d2ff54e9b09f3550b853ee320e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d5b0d2ff54e9b09f3550b853ee320e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a7d5b0d2ff54e9b09f3550b853ee320e0">clear</a> ()</td></tr>
<tr class="memdesc:a7d5b0d2ff54e9b09f3550b853ee320e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates a previously set pointer value, deleting it at the same time. <br /></td></tr>
<tr class="separator:a7d5b0d2ff54e9b09f3550b853ee320e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b9209d274166941176e0a6dd37a4c5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a45b9209d274166941176e0a6dd37a4c5">safe_delete</a> ()</td></tr>
<tr class="separator:a45b9209d274166941176e0a6dd37a4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
<tr class="memitem:a51bd81e15243df7a7b4005eeb7b488b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51bd81e15243df7a7b4005eeb7b488b4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a51bd81e15243df7a7b4005eeb7b488b4">operator ptr_type</a> ()</td></tr>
<tr class="memdesc:a51bd81e15243df7a7b4005eeb7b488b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as the template type. <br /></td></tr>
<tr class="separator:a51bd81e15243df7a7b4005eeb7b488b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add69b68ef9be26b9ec9186d51fa39a24"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add69b68ef9be26b9ec9186d51fa39a24"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#add69b68ef9be26b9ec9186d51fa39a24">operator const_ptr_type</a> () const </td></tr>
<tr class="memdesc:add69b68ef9be26b9ec9186d51fa39a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the pointer operator. <br /></td></tr>
<tr class="separator:add69b68ef9be26b9ec9186d51fa39a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7d912b3504596404119fe82580341e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7d912b3504596404119fe82580341e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ae7d912b3504596404119fe82580341e5">operator ref_type</a> ()</td></tr>
<tr class="memdesc:ae7d912b3504596404119fe82580341e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as a reference of the template type. <br /></td></tr>
<tr class="separator:ae7d912b3504596404119fe82580341e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c42e36b3647431dd7ec0c776c0e20ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c42e36b3647431dd7ec0c776c0e20ef"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a5c42e36b3647431dd7ec0c776c0e20ef">operator const_ref_type</a> () const </td></tr>
<tr class="memdesc:a5c42e36b3647431dd7ec0c776c0e20ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the reference operator. <br /></td></tr>
<tr class="separator:a5c42e36b3647431dd7ec0c776c0e20ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cd4389f5ce7755945abfb2213db3ad4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1cd4389f5ce7755945abfb2213db3ad4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a1cd4389f5ce7755945abfb2213db3ad4">operator bool</a> () const </td></tr>
<tr class="memdesc:a1cd4389f5ce7755945abfb2213db3ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a boolean indicating whether the object has a pointer set or not. <br /></td></tr>
<tr class="separator:a1cd4389f5ce7755945abfb2213db3ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7739b61ec6c605da2905296195774420"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7739b61ec6c605da2905296195774420"></a>
<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a7739b61ec6c605da2905296195774420">operator=</a> (const_ptr_type p)</td></tr>
<tr class="memdesc:a7739b61ec6c605da2905296195774420"><td class="mdescLeft">&#160;</td><td class="mdescRight">To allow setting the pointer directly. Equivalent to a call to <a class="el" href="group__smart__pointer.html#a1fb352a009715192b0f63140ba532429">set()</a>. <br /></td></tr>
<tr class="separator:a7739b61ec6c605da2905296195774420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d26aab6775c2a1be9f1eefd3c3f90f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d26aab6775c2a1be9f1eefd3c3f90f9"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a0d26aab6775c2a1be9f1eefd3c3f90f9">operator-&gt;</a> ()</td></tr>
<tr class="memdesc:a0d26aab6775c2a1be9f1eefd3c3f90f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:a0d26aab6775c2a1be9f1eefd3c3f90f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8a0e976e7fc7420376fe9f1e132b765"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8a0e976e7fc7420376fe9f1e132b765"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#af8a0e976e7fc7420376fe9f1e132b765">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:af8a0e976e7fc7420376fe9f1e132b765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:af8a0e976e7fc7420376fe9f1e132b765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bd81e15243df7a7b4005eeb7b488b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51bd81e15243df7a7b4005eeb7b488b4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a51bd81e15243df7a7b4005eeb7b488b4">operator ptr_type</a> ()</td></tr>
<tr class="memdesc:a51bd81e15243df7a7b4005eeb7b488b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as the template type. <br /></td></tr>
<tr class="separator:a51bd81e15243df7a7b4005eeb7b488b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add69b68ef9be26b9ec9186d51fa39a24"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add69b68ef9be26b9ec9186d51fa39a24"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#add69b68ef9be26b9ec9186d51fa39a24">operator const_ptr_type</a> () const </td></tr>
<tr class="memdesc:add69b68ef9be26b9ec9186d51fa39a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the pointer operator. <br /></td></tr>
<tr class="separator:add69b68ef9be26b9ec9186d51fa39a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7d912b3504596404119fe82580341e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7d912b3504596404119fe82580341e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ae7d912b3504596404119fe82580341e5">operator ref_type</a> ()</td></tr>
<tr class="memdesc:ae7d912b3504596404119fe82580341e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as a reference of the template type. <br /></td></tr>
<tr class="separator:ae7d912b3504596404119fe82580341e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c42e36b3647431dd7ec0c776c0e20ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c42e36b3647431dd7ec0c776c0e20ef"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a5c42e36b3647431dd7ec0c776c0e20ef">operator const_ref_type</a> () const </td></tr>
<tr class="memdesc:a5c42e36b3647431dd7ec0c776c0e20ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the reference operator. <br /></td></tr>
<tr class="separator:a5c42e36b3647431dd7ec0c776c0e20ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cd4389f5ce7755945abfb2213db3ad4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1cd4389f5ce7755945abfb2213db3ad4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a1cd4389f5ce7755945abfb2213db3ad4">operator bool</a> () const </td></tr>
<tr class="memdesc:a1cd4389f5ce7755945abfb2213db3ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a boolean indicating whether the object has a pointer set or not. <br /></td></tr>
<tr class="separator:a1cd4389f5ce7755945abfb2213db3ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7739b61ec6c605da2905296195774420"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7739b61ec6c605da2905296195774420"></a>
<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a7739b61ec6c605da2905296195774420">operator=</a> (const_ptr_type p)</td></tr>
<tr class="memdesc:a7739b61ec6c605da2905296195774420"><td class="mdescLeft">&#160;</td><td class="mdescRight">To allow setting the pointer directly. Equivalent to a call to <a class="el" href="group__smart__pointer.html#a1fb352a009715192b0f63140ba532429">set()</a>. <br /></td></tr>
<tr class="separator:a7739b61ec6c605da2905296195774420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d26aab6775c2a1be9f1eefd3c3f90f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d26aab6775c2a1be9f1eefd3c3f90f9"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a0d26aab6775c2a1be9f1eefd3c3f90f9">operator-&gt;</a> ()</td></tr>
<tr class="memdesc:a0d26aab6775c2a1be9f1eefd3c3f90f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:a0d26aab6775c2a1be9f1eefd3c3f90f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8a0e976e7fc7420376fe9f1e132b765"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8a0e976e7fc7420376fe9f1e132b765"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#af8a0e976e7fc7420376fe9f1e132b765">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:af8a0e976e7fc7420376fe9f1e132b765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:af8a0e976e7fc7420376fe9f1e132b765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Attributes</h3></td></tr>
<tr class="memitem:a3486cb8abfa14fa7f2093e472dbbcf1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3486cb8abfa14fa7f2093e472dbbcf1e"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a3486cb8abfa14fa7f2093e472dbbcf1e">_p</a></td></tr>
<tr class="memdesc:a3486cb8abfa14fa7f2093e472dbbcf1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The wrapped pointer. <br /></td></tr>
<tr class="separator:a3486cb8abfa14fa7f2093e472dbbcf1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a class="anchor" id="a78322a0775a7cfaf852be79490661d77"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt;::~<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor. If an object (pointer) has been set, it will be deleted. Deletes the object using <a class="el" href="group__smart__pointer.html#a45b9209d274166941176e0a6dd37a4c5">safe_delete()</a>. </p>

</div>
</div>
<a class="anchor" id="a78322a0775a7cfaf852be79490661d77"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt;::~<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor. If an object (pointer) has been set, it will be deleted. Deletes the object using <a class="el" href="group__smart__pointer.html#a45b9209d274166941176e0a6dd37a4c5">safe_delete()</a>. </p>

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a class="anchor" id="a45b9209d274166941176e0a6dd37a4c5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt;::safe_delete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Forces immediate deletion of the object. If you are planning on using this method, think about just using a normal pointer. It probably makes more sense. </p>

</div>
</div>
<a class="anchor" id="a45b9209d274166941176e0a6dd37a4c5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt;::safe_delete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Forces immediate deletion of the object. If you are planning on using this method, think about just using a normal pointer. It probably makes more sense. </p>

</div>
</div>
<a class="anchor" id="a1fb352a009715192b0f63140ba532429"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt;::set </td>
          <td>(</td>
          <td class="paramtype">ptr_type&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Change the pointer value, or set if if the default constructor was used. If a pointer had previously been associated with the object, and <em>p</em> is different than that previous pointer, it will be deleted before taking ownership of <em>p</em>. If this is not desired, call <a class="el" href="group__smart__pointer.html#ad1894b101bec04ea93eef04f3d723e7a" title="Dissociates any previously set pointer value without deleting it. ">reset()</a> beforehand. </p>

</div>
</div>
<a class="anchor" id="a1fb352a009715192b0f63140ba532429"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; T &gt;::set </td>
          <td>(</td>
          <td class="paramtype">ptr_type&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Change the pointer value, or set if if the default constructor was used. If a pointer had previously been associated with the object, and <em>p</em> is different than that previous pointer, it will be deleted before taking ownership of <em>p</em>. If this is not desired, call <a class="el" href="group__smart__pointer.html#ad1894b101bec04ea93eef04f3d723e7a" title="Dissociates any previously set pointer value without deleting it. ">reset()</a> beforehand. </p>

</div>
</div>

</div>
</div>
<a name="classsmart__array__ptr" id="classsmart__array__ptr"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class smart_array_ptr</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><h3>template&lt;typename T&gt;<br />
class smart_array_ptr&lt; T &gt;</h3>

<p>Simple, standard smart pointer class that uses the array delete operator. </p>
<p>This class only supports the single-owner paradigm.</p>
<p>This is almost entirely a copy of <a class="el" href="group__smart__pointer.html#classsmart__ptr" title="Simple, standard smart pointer class. ">smart_ptr</a> since the final C++ specification does not allow template subclass members to access members of the parent that do not depend on the template parameter. </p>
</div><div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="closed.png" alt="+"/> Collaboration diagram for smart_array_ptr&lt; T &gt;:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classsmart__array__ptr__coll__graph.svg" width="155" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Public Types</h3></td></tr>
<tr class="memitem:a0299d3c2bf43f6468bb26cbbc0e7de14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0299d3c2bf43f6468bb26cbbc0e7de14"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>data_type</b></td></tr>
<tr class="separator:a0299d3c2bf43f6468bb26cbbc0e7de14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3237f3ca80bc86ec0b8eb405039c894"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3237f3ca80bc86ec0b8eb405039c894"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>ptr_type</b></td></tr>
<tr class="separator:af3237f3ca80bc86ec0b8eb405039c894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae07e150da2d22557c9a656d0207ef356"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae07e150da2d22557c9a656d0207ef356"></a>
typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_ptr_type</b></td></tr>
<tr class="separator:ae07e150da2d22557c9a656d0207ef356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53f3553a52cd01ee336a6c02f4cc7b27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53f3553a52cd01ee336a6c02f4cc7b27"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ref_type</b></td></tr>
<tr class="separator:a53f3553a52cd01ee336a6c02f4cc7b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55efbfd9e87192025d3626ef56803a71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55efbfd9e87192025d3626ef56803a71"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_ref_type</b></td></tr>
<tr class="separator:a55efbfd9e87192025d3626ef56803a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0299d3c2bf43f6468bb26cbbc0e7de14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0299d3c2bf43f6468bb26cbbc0e7de14"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>data_type</b></td></tr>
<tr class="separator:a0299d3c2bf43f6468bb26cbbc0e7de14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3237f3ca80bc86ec0b8eb405039c894"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3237f3ca80bc86ec0b8eb405039c894"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>ptr_type</b></td></tr>
<tr class="separator:af3237f3ca80bc86ec0b8eb405039c894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae07e150da2d22557c9a656d0207ef356"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae07e150da2d22557c9a656d0207ef356"></a>
typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_ptr_type</b></td></tr>
<tr class="separator:ae07e150da2d22557c9a656d0207ef356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53f3553a52cd01ee336a6c02f4cc7b27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53f3553a52cd01ee336a6c02f4cc7b27"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ref_type</b></td></tr>
<tr class="separator:a53f3553a52cd01ee336a6c02f4cc7b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55efbfd9e87192025d3626ef56803a71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55efbfd9e87192025d3626ef56803a71"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_ref_type</b></td></tr>
<tr class="separator:a55efbfd9e87192025d3626ef56803a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:a2fe3560adcac42bde9f3c14750c0aa56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fe3560adcac42bde9f3c14750c0aa56"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a2fe3560adcac42bde9f3c14750c0aa56">smart_array_ptr</a> ()</td></tr>
<tr class="memdesc:a2fe3560adcac42bde9f3c14750c0aa56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constuctor. Initialises with no pointer set. <br /></td></tr>
<tr class="separator:a2fe3560adcac42bde9f3c14750c0aa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011d86382fca664dbd14f1c2cd8d0509"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a011d86382fca664dbd14f1c2cd8d0509"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a011d86382fca664dbd14f1c2cd8d0509">smart_array_ptr</a> (ptr_type p)</td></tr>
<tr class="memdesc:a011d86382fca664dbd14f1c2cd8d0509"><td class="mdescLeft">&#160;</td><td class="mdescRight">This constructor takes a pointer to the object to be deleted. <br /></td></tr>
<tr class="separator:a011d86382fca664dbd14f1c2cd8d0509"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9380f30bd88b085a9031a3cc1c427ccd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a9380f30bd88b085a9031a3cc1c427ccd">~smart_array_ptr</a> ()</td></tr>
<tr class="separator:a9380f30bd88b085a9031a3cc1c427ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d51ae42ef04d0d06f99580ec422315"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1d51ae42ef04d0d06f99580ec422315"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ab1d51ae42ef04d0d06f99580ec422315">get</a> ()</td></tr>
<tr class="memdesc:ab1d51ae42ef04d0d06f99580ec422315"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current pointer value. <br /></td></tr>
<tr class="separator:ab1d51ae42ef04d0d06f99580ec422315"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e16deffe5f3a26086f5d88fd8280fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77e16deffe5f3a26086f5d88fd8280fc"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a77e16deffe5f3a26086f5d88fd8280fc">get</a> () const </td></tr>
<tr class="memdesc:a77e16deffe5f3a26086f5d88fd8280fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the const form of the current pointer value. <br /></td></tr>
<tr class="separator:a77e16deffe5f3a26086f5d88fd8280fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f8e6f1f87356178554d48b4fa924e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a68f8e6f1f87356178554d48b4fa924e1">set</a> (ptr_type p)</td></tr>
<tr class="separator:a68f8e6f1f87356178554d48b4fa924e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4059992dca7e1ae1bad95a3eb32508d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4059992dca7e1ae1bad95a3eb32508d7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a4059992dca7e1ae1bad95a3eb32508d7">reset</a> ()</td></tr>
<tr class="memdesc:a4059992dca7e1ae1bad95a3eb32508d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates any previously set pointer value without deleting it. <br /></td></tr>
<tr class="separator:a4059992dca7e1ae1bad95a3eb32508d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a697aebba8014c79f2937fda92690c62b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a697aebba8014c79f2937fda92690c62b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a697aebba8014c79f2937fda92690c62b">clear</a> ()</td></tr>
<tr class="memdesc:a697aebba8014c79f2937fda92690c62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates a previously set pointer value, deleting it at the same time. <br /></td></tr>
<tr class="separator:a697aebba8014c79f2937fda92690c62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab2be567b186e9eb4e4e45f9aeeed96e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aab2be567b186e9eb4e4e45f9aeeed96e">safe_delete</a> ()</td></tr>
<tr class="separator:aab2be567b186e9eb4e4e45f9aeeed96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fe3560adcac42bde9f3c14750c0aa56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fe3560adcac42bde9f3c14750c0aa56"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a2fe3560adcac42bde9f3c14750c0aa56">smart_array_ptr</a> ()</td></tr>
<tr class="memdesc:a2fe3560adcac42bde9f3c14750c0aa56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constuctor. Initialises with no pointer set. <br /></td></tr>
<tr class="separator:a2fe3560adcac42bde9f3c14750c0aa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011d86382fca664dbd14f1c2cd8d0509"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a011d86382fca664dbd14f1c2cd8d0509"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a011d86382fca664dbd14f1c2cd8d0509">smart_array_ptr</a> (ptr_type p)</td></tr>
<tr class="memdesc:a011d86382fca664dbd14f1c2cd8d0509"><td class="mdescLeft">&#160;</td><td class="mdescRight">This constructor takes a pointer to the object to be deleted. <br /></td></tr>
<tr class="separator:a011d86382fca664dbd14f1c2cd8d0509"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9380f30bd88b085a9031a3cc1c427ccd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a9380f30bd88b085a9031a3cc1c427ccd">~smart_array_ptr</a> ()</td></tr>
<tr class="separator:a9380f30bd88b085a9031a3cc1c427ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d51ae42ef04d0d06f99580ec422315"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1d51ae42ef04d0d06f99580ec422315"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ab1d51ae42ef04d0d06f99580ec422315">get</a> ()</td></tr>
<tr class="memdesc:ab1d51ae42ef04d0d06f99580ec422315"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current pointer value. <br /></td></tr>
<tr class="separator:ab1d51ae42ef04d0d06f99580ec422315"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e16deffe5f3a26086f5d88fd8280fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77e16deffe5f3a26086f5d88fd8280fc"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a77e16deffe5f3a26086f5d88fd8280fc">get</a> () const </td></tr>
<tr class="memdesc:a77e16deffe5f3a26086f5d88fd8280fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the const form of the current pointer value. <br /></td></tr>
<tr class="separator:a77e16deffe5f3a26086f5d88fd8280fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f8e6f1f87356178554d48b4fa924e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a68f8e6f1f87356178554d48b4fa924e1">set</a> (ptr_type p)</td></tr>
<tr class="separator:a68f8e6f1f87356178554d48b4fa924e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4059992dca7e1ae1bad95a3eb32508d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4059992dca7e1ae1bad95a3eb32508d7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a4059992dca7e1ae1bad95a3eb32508d7">reset</a> ()</td></tr>
<tr class="memdesc:a4059992dca7e1ae1bad95a3eb32508d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates any previously set pointer value without deleting it. <br /></td></tr>
<tr class="separator:a4059992dca7e1ae1bad95a3eb32508d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a697aebba8014c79f2937fda92690c62b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a697aebba8014c79f2937fda92690c62b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a697aebba8014c79f2937fda92690c62b">clear</a> ()</td></tr>
<tr class="memdesc:a697aebba8014c79f2937fda92690c62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates a previously set pointer value, deleting it at the same time. <br /></td></tr>
<tr class="separator:a697aebba8014c79f2937fda92690c62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab2be567b186e9eb4e4e45f9aeeed96e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aab2be567b186e9eb4e4e45f9aeeed96e">safe_delete</a> ()</td></tr>
<tr class="separator:aab2be567b186e9eb4e4e45f9aeeed96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
<tr class="memitem:aa518687339c0566169d5e51809d9b51c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa518687339c0566169d5e51809d9b51c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aa518687339c0566169d5e51809d9b51c">operator ptr_type</a> ()</td></tr>
<tr class="memdesc:aa518687339c0566169d5e51809d9b51c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as the template type. <br /></td></tr>
<tr class="separator:aa518687339c0566169d5e51809d9b51c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794dee44c03007642b2bbf0a235e10da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a794dee44c03007642b2bbf0a235e10da"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a794dee44c03007642b2bbf0a235e10da">operator const_ptr_type</a> () const </td></tr>
<tr class="memdesc:a794dee44c03007642b2bbf0a235e10da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the pointer operator. <br /></td></tr>
<tr class="separator:a794dee44c03007642b2bbf0a235e10da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba0e613d9ce15df1dc75d126bb61f306"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba0e613d9ce15df1dc75d126bb61f306"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aba0e613d9ce15df1dc75d126bb61f306">operator ref_type</a> ()</td></tr>
<tr class="memdesc:aba0e613d9ce15df1dc75d126bb61f306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as a reference of the template type. <br /></td></tr>
<tr class="separator:aba0e613d9ce15df1dc75d126bb61f306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e62ee3043ba72f906e2899d6321e9a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e62ee3043ba72f906e2899d6321e9a2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a3e62ee3043ba72f906e2899d6321e9a2">operator const_ref_type</a> () const </td></tr>
<tr class="memdesc:a3e62ee3043ba72f906e2899d6321e9a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the reference operator. <br /></td></tr>
<tr class="separator:a3e62ee3043ba72f906e2899d6321e9a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac16427db1c3cc8014545945f0fe50aa4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac16427db1c3cc8014545945f0fe50aa4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ac16427db1c3cc8014545945f0fe50aa4">operator bool</a> () const </td></tr>
<tr class="memdesc:ac16427db1c3cc8014545945f0fe50aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a boolean indicating whether the object has a pointer set or not. <br /></td></tr>
<tr class="separator:ac16427db1c3cc8014545945f0fe50aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a002d81b79b5ad07987339b33f42ab980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a002d81b79b5ad07987339b33f42ab980"></a>
<a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a002d81b79b5ad07987339b33f42ab980">operator=</a> (const_ptr_type p)</td></tr>
<tr class="memdesc:a002d81b79b5ad07987339b33f42ab980"><td class="mdescLeft">&#160;</td><td class="mdescRight">To allow setting the pointer directly. Equivalent to a call to <a class="el" href="group__smart__pointer.html#a68f8e6f1f87356178554d48b4fa924e1">set()</a>. <br /></td></tr>
<tr class="separator:a002d81b79b5ad07987339b33f42ab980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe99bf41ce44a6d9f816e173cbf7b5a0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe99bf41ce44a6d9f816e173cbf7b5a0"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#afe99bf41ce44a6d9f816e173cbf7b5a0">operator-&gt;</a> ()</td></tr>
<tr class="memdesc:afe99bf41ce44a6d9f816e173cbf7b5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:afe99bf41ce44a6d9f816e173cbf7b5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a721e31abb296c4d12acbfb442ecc90e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a721e31abb296c4d12acbfb442ecc90e9"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a721e31abb296c4d12acbfb442ecc90e9">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:a721e31abb296c4d12acbfb442ecc90e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:a721e31abb296c4d12acbfb442ecc90e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad053bce3f1db513af6573dfc367e34c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad053bce3f1db513af6573dfc367e34c"></a>
ref_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aad053bce3f1db513af6573dfc367e34c">operator[]</a> (unsigned index)</td></tr>
<tr class="memdesc:aad053bce3f1db513af6573dfc367e34c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexing operator. <br /></td></tr>
<tr class="separator:aad053bce3f1db513af6573dfc367e34c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0868bc4c683151d07a1e0e41ac932a55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0868bc4c683151d07a1e0e41ac932a55"></a>
const_ref_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a0868bc4c683151d07a1e0e41ac932a55">operator[]</a> (unsigned index) const </td></tr>
<tr class="memdesc:a0868bc4c683151d07a1e0e41ac932a55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexing operator. <br /></td></tr>
<tr class="separator:a0868bc4c683151d07a1e0e41ac932a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa518687339c0566169d5e51809d9b51c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa518687339c0566169d5e51809d9b51c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aa518687339c0566169d5e51809d9b51c">operator ptr_type</a> ()</td></tr>
<tr class="memdesc:aa518687339c0566169d5e51809d9b51c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as the template type. <br /></td></tr>
<tr class="separator:aa518687339c0566169d5e51809d9b51c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794dee44c03007642b2bbf0a235e10da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a794dee44c03007642b2bbf0a235e10da"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a794dee44c03007642b2bbf0a235e10da">operator const_ptr_type</a> () const </td></tr>
<tr class="memdesc:a794dee44c03007642b2bbf0a235e10da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the pointer operator. <br /></td></tr>
<tr class="separator:a794dee44c03007642b2bbf0a235e10da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba0e613d9ce15df1dc75d126bb61f306"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba0e613d9ce15df1dc75d126bb61f306"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aba0e613d9ce15df1dc75d126bb61f306">operator ref_type</a> ()</td></tr>
<tr class="memdesc:aba0e613d9ce15df1dc75d126bb61f306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as a reference of the template type. <br /></td></tr>
<tr class="separator:aba0e613d9ce15df1dc75d126bb61f306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e62ee3043ba72f906e2899d6321e9a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e62ee3043ba72f906e2899d6321e9a2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a3e62ee3043ba72f906e2899d6321e9a2">operator const_ref_type</a> () const </td></tr>
<tr class="memdesc:a3e62ee3043ba72f906e2899d6321e9a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the reference operator. <br /></td></tr>
<tr class="separator:a3e62ee3043ba72f906e2899d6321e9a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac16427db1c3cc8014545945f0fe50aa4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac16427db1c3cc8014545945f0fe50aa4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#ac16427db1c3cc8014545945f0fe50aa4">operator bool</a> () const </td></tr>
<tr class="memdesc:ac16427db1c3cc8014545945f0fe50aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a boolean indicating whether the object has a pointer set or not. <br /></td></tr>
<tr class="separator:ac16427db1c3cc8014545945f0fe50aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a002d81b79b5ad07987339b33f42ab980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a002d81b79b5ad07987339b33f42ab980"></a>
<a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a002d81b79b5ad07987339b33f42ab980">operator=</a> (const_ptr_type p)</td></tr>
<tr class="memdesc:a002d81b79b5ad07987339b33f42ab980"><td class="mdescLeft">&#160;</td><td class="mdescRight">To allow setting the pointer directly. Equivalent to a call to <a class="el" href="group__smart__pointer.html#a68f8e6f1f87356178554d48b4fa924e1">set()</a>. <br /></td></tr>
<tr class="separator:a002d81b79b5ad07987339b33f42ab980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe99bf41ce44a6d9f816e173cbf7b5a0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe99bf41ce44a6d9f816e173cbf7b5a0"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#afe99bf41ce44a6d9f816e173cbf7b5a0">operator-&gt;</a> ()</td></tr>
<tr class="memdesc:afe99bf41ce44a6d9f816e173cbf7b5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:afe99bf41ce44a6d9f816e173cbf7b5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a721e31abb296c4d12acbfb442ecc90e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a721e31abb296c4d12acbfb442ecc90e9"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a721e31abb296c4d12acbfb442ecc90e9">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:a721e31abb296c4d12acbfb442ecc90e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:a721e31abb296c4d12acbfb442ecc90e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad053bce3f1db513af6573dfc367e34c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad053bce3f1db513af6573dfc367e34c"></a>
ref_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#aad053bce3f1db513af6573dfc367e34c">operator[]</a> (unsigned index)</td></tr>
<tr class="memdesc:aad053bce3f1db513af6573dfc367e34c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexing operator. <br /></td></tr>
<tr class="separator:aad053bce3f1db513af6573dfc367e34c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0868bc4c683151d07a1e0e41ac932a55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0868bc4c683151d07a1e0e41ac932a55"></a>
const_ref_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a0868bc4c683151d07a1e0e41ac932a55">operator[]</a> (unsigned index) const </td></tr>
<tr class="memdesc:a0868bc4c683151d07a1e0e41ac932a55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexing operator. <br /></td></tr>
<tr class="separator:a0868bc4c683151d07a1e0e41ac932a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Attributes</h3></td></tr>
<tr class="memitem:a0fc4dcef8e2081c13ff70a431ef4fb56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0fc4dcef8e2081c13ff70a431ef4fb56"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smart__pointer.html#a0fc4dcef8e2081c13ff70a431ef4fb56">_p</a></td></tr>
<tr class="memdesc:a0fc4dcef8e2081c13ff70a431ef4fb56"><td class="mdescLeft">&#160;</td><td class="mdescRight">The wrapped pointer. <br /></td></tr>
<tr class="separator:a0fc4dcef8e2081c13ff70a431ef4fb56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a class="anchor" id="a9380f30bd88b085a9031a3cc1c427ccd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt;::~<a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor. If an array has been set, it will be deleted. Deletes the array using <a class="el" href="group__smart__pointer.html#aab2be567b186e9eb4e4e45f9aeeed96e">safe_delete()</a>. </p>

</div>
</div>
<a class="anchor" id="a9380f30bd88b085a9031a3cc1c427ccd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt;::~<a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor. If an array has been set, it will be deleted. Deletes the array using <a class="el" href="group__smart__pointer.html#aab2be567b186e9eb4e4e45f9aeeed96e">safe_delete()</a>. </p>

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a class="anchor" id="aab2be567b186e9eb4e4e45f9aeeed96e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt;::safe_delete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Forces immediate deletion of the object. If you are planning on using this method, think about just using a normal pointer. It probably makes more sense. </p>

</div>
</div>
<a class="anchor" id="aab2be567b186e9eb4e4e45f9aeeed96e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt;::safe_delete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Forces immediate deletion of the object. If you are planning on using this method, think about just using a normal pointer. It probably makes more sense. </p>

</div>
</div>
<a class="anchor" id="a68f8e6f1f87356178554d48b4fa924e1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt;::set </td>
          <td>(</td>
          <td class="paramtype">ptr_type&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Change the pointer value, or set if if the default constructor was used. If a pointer had previously been associated with the object, and <em>p</em> is different than that previous pointer, it will be deleted before taking ownership of <em>p</em>. If this is not desired, call <a class="el" href="group__smart__pointer.html#a4059992dca7e1ae1bad95a3eb32508d7" title="Dissociates any previously set pointer value without deleting it. ">reset()</a> beforehand. </p>

</div>
</div>
<a class="anchor" id="a68f8e6f1f87356178554d48b4fa924e1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__smart__pointer.html#classsmart__array__ptr">smart_array_ptr</a>&lt; T &gt;::set </td>
          <td>(</td>
          <td class="paramtype">ptr_type&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Change the pointer value, or set if if the default constructor was used. If a pointer had previously been associated with the object, and <em>p</em> is different than that previous pointer, it will be deleted before taking ownership of <em>p</em>. If this is not desired, call <a class="el" href="group__smart__pointer.html#a4059992dca7e1ae1bad95a3eb32508d7" title="Dissociates any previously set pointer value without deleting it. ">reset()</a> beforehand. </p>

</div>
</div>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Mon Mar 7 2016 16:49:50 for Kinetis Bootloader Host by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
